﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;


namespace CrushGame
{
    /// <summary>
    /// Interface for controller entities used to control complex AI or the Player
    /// </summary>
    interface IControllerInterface
    {
        /// <summary>
        /// Must have a Player field
        /// </summary>
        Player Player
        {
            get;
            set;
        }

        //Acceleration helpers
        void AccelLeft(bool RemainsDown);
        void AccelRight(bool RemainsDown);
        void AccelDown(bool RemainsDown);
        void AccelUp(bool RemainsDown);

        //More basic control functionality here
        /// <summary>
        /// Updates the controller, and anything that might need to happen incrementally
        /// </summary>
        void Update();
    }

    /// <summary>
    /// Enum to control the commands able to be handled by controller
    /// </summary>
    public enum InputCommand
    {
        CMD_Move_Up,
        CMD_Move_Down,
        CMD_Move_Left,
        CMD_Move_Right,
        CMD_MAX
    }

}
